/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.fatecpg.zanotti.acessobanco;

import br.com.fatecpg.zanotti.modelo.Funcionario;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

/**
 * Classe responsável por realizar toda a Manipulação de Dados referente a tabela Funcionario do Banco de Dados.
 * @author F.L. Zanotti
 */
public class dmlFuncionario {
/**
 * Método responsável pela rotina de INSERT no banco de dados
 * @param Funcionario Objeto Funcionario
 * @return boolean
 */
    public static boolean cadastrar(Funcionario Funcionario) {
        try {
            Connection con = AbreConexao.getConexao();

            String query = "INSERT INTO FUNCIONARIO(cdfuncionario, cdcargo, cdloja, cdtelefone, " +
                    "cnhfuncionario, cpffuncionario, dtadmissao, nmfuncionario " +
                    ", rgfuncionario, dtnascimento)VALUES" +
                    " (seq_cdfuncionario.NEXTVAL, ?, ?, ?, ?,?,?,?,?,?)";

            PreparedStatement pst = con.prepareStatement(query);


            pst.setString(1, Funcionario.getCDCARGO());
            pst.setString(2, Funcionario.getCDLOJA());
            pst.setString(3, Funcionario.getCDTELEFONE());
            pst.setString(4, Funcionario.getCNHFUNCIONARIO());
            pst.setString(5, Funcionario.getCPFFUNCIONARIO());
            pst.setString(6, Funcionario.getDTADMISSAO());
            pst.setString(7, Funcionario.getNMFUNCIONARIO());
            pst.setString(8, Funcionario.getRGFUNCIONARIO());
            pst.setString(9, Funcionario.getDTNASCIMENTO());

            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "Cadastro realizado com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }

    }
/**
 * Método responsável pela rotina de UPDATE no banco de dados
 * @param Funcionario Objeto Funcionario
 * @return boolean
 */
    public static boolean atualizar(Funcionario Funcionario) {
        try {
            Connection con = AbreConexao.getConexao();

            String query = "UPDATE Funcionario SET " +
                    "cdcargo = ?, " +
                    "cdloja = ?, " +
                    "cdtelefone = ?, " +
                    "cnhfuncionario = ?, " +
                    "cpffuncionario = ?, " +
                    "dtadmissao = ?, " +
                    "nmfuncionario = ?, " +
                    "rgfuncionario = ?, " +
                    "dtnascimento = ? " +
                    "WHERE cdfuncionario = ?";

            PreparedStatement pst = con.prepareStatement(query);

            pst.setString(1, Funcionario.getCDCARGO());
            pst.setString(2, Funcionario.getCDLOJA());
            pst.setString(3, Funcionario.getCDTELEFONE());
            pst.setString(4, Funcionario.getCNHFUNCIONARIO());
            pst.setString(5, Funcionario.getCPFFUNCIONARIO());
            pst.setString(6, Funcionario.getDTADMISSAO());
            pst.setString(7, Funcionario.getNMFUNCIONARIO());
            pst.setString(8, Funcionario.getRGFUNCIONARIO());
            pst.setString(9, Funcionario.getDTNASCIMENTO());
            pst.setString(10, Funcionario.getCDFUNCIONARIO());


            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "Atualização realizada com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }
    }
/**
 * Método responsável pela rotina de INSERT no banco de dados
 * @param cd Codigo do Funcionario
 * @return boolean
 */
    public static boolean deletar(String cd) {
        try {
            Connection con = AbreConexao.getConexao();

            String query = "DELETE FROM Funcionario " +
                    "WHERE CDfuncionario = ?";

            PreparedStatement pst = con.prepareStatement(query);

            pst.setString(1, cd);

            pst.execute();
            con.commit();
            con.close();
            pst.close();
            javax.swing.JOptionPane.showMessageDialog(null, "O cadastro foi apagado com sucesso");
            return true;
        } catch (SQLException e) {
            javax.swing.JOptionPane.showMessageDialog(null, e);
            return false;
        }
    }
}
